import { getHomeGoodsGuessLike, GuessItem } from '@/services/home'
import { ref } from 'vue'

/**
 * 猜你喜欢
 * @returns
 */
export function useGuessList() {
  // 猜你喜欢列表
  const guessList = ref<GuessItem[]>([])
  // 全局的页码变量
  const page = ref(1)
  // 定义响应式数据，界面渲染需要响应式数据
  const counts = ref(0)
  // 猜你喜欢需要调用多次，独立封装处理
  const getGuessList = async () => {
    // 调用封装的接口，获取猜你喜欢数据
    const res = await getHomeGoodsGuessLike({ page: page.value, pageSize: 10 })
    // 追加分页数据
    guessList.value.push(...res.items)
    // 保存总条数数据，用于判断所有分页是否加载完毕
    counts.value = res.counts
  }

  // 查阅文档，查找滚动触底事件，当滚动触底加载猜你喜欢分页数据
  const onScrolltolower = () => {
    // 如果总条数与列表条数相等，直接退出并提示
    if (counts.value === guessList.value.length) {
      return uni.showToast({ icon: 'none', title: '没有更多啦~' })
    }
    // 页码自增
    page.value++
    // 调用猜你喜欢
    getGuessList()
  }

  return {
    onScrolltolower,
    getGuessList,
    counts,
    guessList,
    page,
  }
}
